<?php
class PagamentosController extends AppController {

	var $name = 'Pagamentos';

	function receberPagto($id = null, $msg = null) {
		if (!empty($this->data)) {
			
			//PASSAR O VALOR DO MUNICIPIO E DO PRODUTO PRA UM CAMPO HIDDEN
			$this->data['Pagamento']['valor'] = $this->alterarValorMonetario($this->data['Pagamento']['valor']);
			$this->data['Pagamento']['desconto'] = $this->alterarValorMonetario($this->data['Pagamento']['desconto']);
			$this->data['Pagamento']['taxaentrega'] = $this->alterarValorMonetario($this->data['Pagamento']['taxaentrega']);
			$this->data['Pagamento']['total'] = $this->alterarValorMonetario($this->data['Pagamento']['total']);
			$this->Pagamento->create();
			if ($this->Pagamento->save($this->data)) {
				$msg = 'Pagamento recebido.';
				$this->redirect(array('action' => 'receberPagto', $this->Pagamento->id));
			} else {
				$msg = 'O Pagamento não foi recebido.';
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Pagamento->read(null, $id);
		}
			
		$ordemservicos = $this->Pagamento->Ordemservico->find('list');
		$this->set(compact('ordemservicos', 'id', 'msg'));
	}

	function delete($id = null, $msg = null) {
		if ($id) {
			if ( $this->Session->read('Auth.Usuario.perfilacesso') == 'Administrador' ) {
				if ($this->Pagamento->delete($id)) {
					$msg = 'Dados apagados com sucesso!';
					$this->redirect(array('action'=>'consultar', $msg));
				} else 
					$msg = 'O Pagamento não foi excluído.';
			} else 
				$msg = 'Somente o Administrador pode excluir um Pagamento.';
		}
		$this->redirect(array('action' => 'receberPagto', $id, $msg));
	}
	
	function carregarOs($osId){
		$this->layout = 'ajax';
		$id = $this->Pagamento->Ordemservico->field('id', array('Ordemservico.id' => $osId));
		if ( !empty($id) ) {
			$this->data = $this->Pagamento->Ordemservico->read(null, $id);
			$this->data['Municipio']['nome'] = $this->Pagamento->Ordemservico->Pessoa->Municipio->field('nome', array('Municipio.id' => $this->data['Pessoa']['municipio_id']));
		} else 
			$this->data = array();
			
		echo json_encode($this->data);
		$this->render(false);
	}
	
	function emitirNota($id){
		$this->Pagamento->recursive = 4;
		$this->set('pagamento', $this->Pagamento->read(null, $id));
		
		$this->layout = 'nota';
		//$this->render('notaPdf');
		$this->render('notaAtendimento');
	}
	
	function consultarNota($pagto_id = null, $msg = null) {
		
		$pagto_id = null; 
		if ( $this->data['Pagamento']['numero_os'] ) {
			$pagto_id = $this->Pagamento->field('id', array('Pagamento.ordemservico_id' => $this->data['Pagamento']['numero_os'])); 
			if (!empty($pagto_id)) {
				//$this->redirect(array('action' => 'emitirNota', $pagto_id));
				//$this->set('pagamento', $this->Pagamento->read(null, $pagto_id));
				//$this->layout = 'nota';
				//$this->render('notaAtendimento');
			} else {
				$msg = 'OS não existe. Favor tentar novamente.';
				$this->redirect(array('action' => 'consultarNota', $msg));
			}
		}
		if ( $this->data['Pagamento']['numero_nota'] ) {
			$pagto_id = $this->Pagamento->field('id', array('Pagamento.id' => $this->data['Pagamento']['numero_nota'])); 
			if (!empty($pagto_id)) {
				//$this->redirect(array('action' => 'emitirNota', $pagto_id));
				$this->set('pagamento', $this->Pagamento->read(null, $pagto_id));
				$this->layout = 'nota';
				$this->render('notaAtendimento');
			} else {
				$msg = 'Nota de Atendimento não existe. Favor tentar novamente.';
				$this->redirect(array('action' => 'consultarNota', $msg));
			}
		}			
		
		$this->set(compact('pagto_id', 'msg'));
		
	}
	//TODO rever as variaveis (os e pagto id estao misturados)
	function consultar($id = null, $os_id = null, $msg = null) {
		$pagto_id = ''; 
		if ( $this->data['Pagamento']['numero_os'] ) {
			$os_id = $this->Pagamento->Ordemservico->field('id', array('Ordemservico.id' => $this->data['Pagamento']['numero_os']));
			if (!empty($os_id)) {
				$pagto_id = $this->Pagamento->field('id', array('Pagamento.ordemservico_id' => $os_id)); 
				if(!empty($pagto_id)) 
					$this->redirect(array('action' => 'consultar', $pagto_id, $this->data['Pagamento']['numero_os']));
				else
					$this->redirect(array('action' => 'consultar', 'nulo', $this->data['Pagamento']['numero_os']));
			} else
				$msg = 'Ordem de serviço  não existe. Favor tentar novamente.';
		}
		$this->set(compact('id', 'os_id', 'msg'));
	}
	
	function cancelar($id = null, $msg = null) {
		
		$pagto_id = ''; 
		if ( $this->data['Pagamento']['numero_os'] ) {
			$pagto_id = $this->Pagamento->field('id', array('Pagamento.ordemservico_id' => $this->data['Pagamento']['numero_os'])); 
			if(!empty($pagto_id)) 
				$this->redirect(array('action' => 'cancelarPagto', $pagto_id));
			else 
				$msg = 'OS não existe. Favor tentar novamente.';
		}
		$this->set(compact('id', 'msg'));
	}
	
	function cancelarPagto($id = null, $msg = null) {
		
		if ( !empty($this->data) ) {
			if ($this->Pagamento->delete($id)) {
				$msg = 'Pagamento cancelado com sucesso.';
				$this->redirect(array('action'=>'cancelar'));
			}
		}
		$this->Pagamento->Ordemservico->unbindModel(array('hasMany'=>array('Laudotecnico', 'Pagamento', 'Entrega')));
		$this->Pagamento->recursive = 2;
		$this->data = $this->Pagamento->read(null, $id);
		$this->data['Pessoa'] = $this->data['Ordemservico']['Pessoa'];
		$this->data['Produto'] = $this->data['Ordemservico']['Produto'];
		unset($this->data['Ordemservico']['Pessoa']);
		unset($this->data['Ordemservico']['Produto']);
		$this->set(compact('id', 'msg'));
	}
	
}
?>